<?php

Class OperatingPlansController extends AppController {

    public $name = 'OperatingPlans';

    public function index() {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }
        $this->set("codigo", $this->Session->read('cod'));
        $proyect_id = $this->Session->read('proy_id');
        $this->set('proyect_id', $proyect_id);

        App::Import('model', 'Proyect');
        $proyect = new Proyect();
        $proyect->recursive = -1;
        $publicado = $proyect->field('Proyect.publicado', array('Proyect.id' => $proyect_id));

        App::Import('model', 'FinalEvaluation');
        $evaluacionFinal = new FinalEvaluation();
        $evaluacionFinal->recursive = -1;

        $calificacion_faseIIB = $evaluacionFinal->field('FinalEvaluation.calificacion_elegibilidad_integral', array('FinalEvaluation.proyect_id' => $proyect_id), 'FinalEvaluation.id DESC');
        if ($calificacion_faseIIB == 'Sin registro' or $calificacion_faseIIB == 'No elegible') {
            $this->Session->setFlash('Este proyecto no superó fase IIB.', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {
            if ($proyect_id == "") {
                $this->Session->setFlash('No ha seleccionado Proyecto');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            } else {
                if ($publicado == 1) {
                    $this->OperatingPlan->recursive = -1;
                    $this->paginate = array('OperatingPlan' => array('maxLimit' => 20, 'limit' => 20, 'fields' => array('OperatingPlan.id', 'OperatingPlan.fecha_inicio', 'OperatingPlan.fecha_finalizacion', 'OperatingPlan.documento')));
                    $this->set('OperatingPlans', $this->paginate(array('OperatingPlan.proyect_id' => $proyect_id)));
                } else {
                    $this->Session->setFlash('Este proyecto aún no ha sido publicado.', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            }
        }
    }
    
    public function index_committee_plan() {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }
        $this->set("codigo", $this->Session->read('cod'));
        $proyect_id = $this->Session->read('proy_id');
        $this->set('proyect_id', $proyect_id);

        App::Import('model', 'Proyect');
        $proyect = new Proyect();
        $proyect->recursive = -1;
        $publicado = $proyect->field('Proyect.publicado', array('Proyect.id' => $proyect_id));

        App::Import('model', 'FinalEvaluation');
        $evaluacionFinal = new FinalEvaluation();
        $evaluacionFinal->recursive = -1;

        $calificacion_faseIIB = $evaluacionFinal->field('FinalEvaluation.calificacion_elegibilidad_integral', array('FinalEvaluation.proyect_id' => $proyect_id), 'FinalEvaluation.id DESC');
        if ($calificacion_faseIIB == 'Sin registro' or $calificacion_faseIIB == 'No elegible') {
            $this->Session->setFlash('Este proyecto no superó fase IIB.', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {
            if ($proyect_id == "") {
                $this->Session->setFlash('No ha seleccionado Proyecto');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            } else {
                if ($publicado == 1) {
                    $this->OperatingPlan->recursive = -1;
                    $this->paginate = array('OperatingPlan' => array('maxLimit' => 20, 'limit' => 20, 'fields' => array('OperatingPlan.id', 'OperatingPlan.fecha_inicio', 'OperatingPlan.fecha_finalizacion', 'OperatingPlan.documento')));
                    $this->set('OperatingPlans', $this->paginate(array('OperatingPlan.proyect_id' => $proyect_id)));
                } else {
                    $this->Session->setFlash('Este proyecto aún no ha sido publicado.', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            }
        }
    }
    
    public function index_committee_ejecucion() {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }
        $this->set("codigo", $this->Session->read('cod'));
        $proyect_id = $this->Session->read('proy_id');
        $this->set('proyect_id', $proyect_id);

        App::Import('model', 'Proyect');
        $proyect = new Proyect();
        $proyect->recursive = -1;
        $publicado = $proyect->field('Proyect.publicado', array('Proyect.id' => $proyect_id));

        App::Import('model', 'FinalEvaluation');
        $evaluacionFinal = new FinalEvaluation();
        $evaluacionFinal->recursive = -1;

        $calificacion_faseIIB = $evaluacionFinal->field('FinalEvaluation.calificacion_elegibilidad_integral', array('FinalEvaluation.proyect_id' => $proyect_id), 'FinalEvaluation.id DESC');
        if ($calificacion_faseIIB == 'Sin registro' or $calificacion_faseIIB == 'No elegible') {
            $this->Session->setFlash('Este proyecto no superó fase IIB.', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {
            if ($proyect_id == "") {
                $this->Session->setFlash('No ha seleccionado Proyecto');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            } else {
                if ($publicado == 1) {
                    $this->OperatingPlan->recursive = -1;
                    $this->paginate = array('OperatingPlan' => array('maxLimit' => 20, 'limit' => 20, 'fields' => array('OperatingPlan.id', 'OperatingPlan.fecha_inicio', 'OperatingPlan.fecha_finalizacion', 'OperatingPlan.documento')));
                    $this->set('OperatingPlans', $this->paginate(array('OperatingPlan.proyect_id' => $proyect_id)));
                } else {
                    $this->Session->setFlash('Este proyecto aún no ha sido publicado.', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            }
        }
    }

    public function index_planeacion() {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }
        $this->set("codigo", $this->Session->read('cod'));
        $proyect_id = $this->Session->read('proy_id');
        $this->set('proyect_id', $proyect_id);

        App::Import('model', 'Proyect');
        $proyect = new Proyect();
        $proyect->recursive = -1;
        $publicado = $proyect->field('Proyect.publicado', array('Proyect.id' => $proyect_id));

        App::Import('model', 'FinalEvaluation');
        $evaluacionFinal = new FinalEvaluation();
        $evaluacionFinal->recursive = -1;

        $calificacion_faseIIB = $evaluacionFinal->field('FinalEvaluation.calificacion_elegibilidad_integral', array('FinalEvaluation.proyect_id' => $proyect_id), 'FinalEvaluation.id DESC');
        if ($calificacion_faseIIB == 'Sin registro' or $calificacion_faseIIB == 'No elegible') {
            $this->Session->setFlash('Este proyecto no superó fase IIB.', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {
            if ($proyect_id == "") {
                $this->Session->setFlash('No ha seleccionado Proyecto');
                $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
            } else {
                if ($publicado == 1) {
                    $this->OperatingPlan->recursive = -1;
                    $this->paginate = array('OperatingPlan' => array('maxLimit' => 20, 'limit' => 20, 'fields' => array('OperatingPlan.id', 'OperatingPlan.fecha_inicio', 'OperatingPlan.fecha_finalizacion', 'OperatingPlan.documento')));
                    $this->set('OperatingPlans', $this->paginate(array('OperatingPlan.proyect_id' => $proyect_id)));
                } else {
                    $this->Session->setFlash('Este proyecto aún no ha sido publicado.', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            }
        }
    }

    public function add($proyect_id) {
        $this->layout = "ajax";
        if (empty($this->data)) {
            App::Import('Model', 'Proyect');
            $proyecto = new Proyect();
            $proyecto->recursive = -1;
            $this->set('proyect_id', $proyect_id);
            $this->set('codigo', $proyecto->field('codigo', array('id' => $proyect_id)));
        } else {
            if ($this->OperatingPlan->saveAll($this->data)) {
                $lastId = $this->OperatingPlan->getInsertID();
                App::Import('Model', 'Proyect');
                $proyecto = new Proyect();
                $proyecto->recursive = -1;
                $codigo = $proyecto->field('codigo', array('id' => $proyect_id));
                $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo;
                if ($this->data['OperatingPlan']['archivo']['tmp_name'] != "") {
                    if (!is_dir($rutaArchivo)) {
                        if (!mkdir($rutaArchivo)) {
                            echo "error creando archivo";
                            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                        }
                    }
                    $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Seguimiento";
                    if (!is_dir($rutaArchivo)) {
                        if (!mkdir($rutaArchivo)) {
                            echo "error creando archivo";
                            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                        }
                    }
                    $nombreArchivo = "PLAN-OPERATIVO-$codigo-$lastId";
                    $this->OperatingPlan->id = $lastId;
                    $this->OperatingPlan->saveField('documento', 'files/' . $codigo . "/Seguimiento/" . $nombreArchivo);
                    $nombreArchivo = $nombreArchivo . ".pdf";
                    $rutaArchivo.= "/" . $nombreArchivo;

                    if (move_uploaded_file($this->data['OperatingPlan']['archivo']['tmp_name'], $rutaArchivo)) {
                        //envío el correo informando 
                        $this->Session->setFlash('Registro Adicionado correctamente', 'flash_custom');
                        $this->redirect(array('controller' => 'OperatingPlans', 'action' => 'index_planeacion'));
                    } else {
                        $this->Session->setFlash('No se pudo adjuntar archivo', 'flash_custom');
                        $this->redirect(array('controller' => 'OperatingPlans', 'action' => 'index_planeacion'));
                    }
                } else {
                    $this->Session->setFlash('Datos guardados correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'OperatingPlans', 'action' => 'index_planeacion'));
                }
            } else {
                $this->Session->setFlash('Error Guardando datos');
            }
        }
    }

    public function edit($id) {
        $this->layout = "ajax";
        $this->OperatingPlan->recursive = -1;
        if (empty($this->data)) {
            $this->data = $this->OperatingPlan->find('first', array('conditions' => array('OperatingPlan.id' => $id), 'fields' => array('OperatingPlan.*')));
        } else {
            App::Import('Model', 'Proyect');
            $proyecto = new Proyect();
            $proyecto->recursive = -1;
            $codigo = $proyecto->field('Proyect.codigo', array('id' => $this->data['OperatingPlan']['proyect_id']));
            $nombreArchivo = "PLAN-OPERATIVO-$codigo-" . $this->data['OperatingPlan']['id'];
            $nombreArchivo = $nombreArchivo . ".pdf";
            $this->data['OperatingPlan']['documento'] = "files/$codigo/Seguimiento/" . $nombreArchivo;
            if ($this->OperatingPlan->saveAll($this->data)) {
                if ($this->data['OperatingPlan']['archivo']['tmp_name'] != "") {
                    $rutaArchivo1 = APP . "webroot" . "/" . "files" . "/" . $codigo;
                    $rutaArchivo = APP . "webroot" . "/" . "files" . "/" . $codigo . "/Seguimiento";

                    if (!is_dir($rutaArchivo1)) {
                        mkdir($rutaArchivo1);
                    }
                    if (!is_dir($rutaArchivo)) {
                        if (!mkdir($rutaArchivo)) {
                            $this->Session->setFlash('Error creando el archivo - - - -' . $codigo, 'flash_custom');
                            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                        }
                    }

                    $rutaArchivo.= "/" . $nombreArchivo;
                    if (move_uploaded_file($this->data['OperatingPlan']['archivo']['tmp_name'], $rutaArchivo)) {
                        $this->Session->setFlash('Archivo cargado con éxito', 'flash_custom');
                        $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                    } else {
                        $this->Session->setFlash('No es posible cargar el archivo', 'flash_custom');
                        $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                    }
                } else {
                    $this->Session->setFlash('Datos guardados correctamente', 'flash_custom');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            } else {
                $this->Session->setFlash('Error editando datos');
            }
        }
    }

}

?>